package com.minimalist.lindi.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.lindi.po.LindiContractTemplateField;
import com.minimalist.common.entity.lindi.vo.contracttemplatefield.LindiContractTemplateFieldQueryVO;
import com.minimalist.common.entity.lindi.vo.contracttemplatefield.LindiContractTemplateFieldVO;
import com.mybatisflex.core.service.IService;

/**
 * 林地指标平台_合同模板字段表 服务层。
 *
 * @author 11987
 * @since 2025-05-31
 */
public interface LindiContractTemplateFieldService extends IService<LindiContractTemplateField> {

    /**
     * 添加合同模板字段
     *
     * @param contractTemplateFieldVO 合同模板字段VO
     */
    void addContractTemplateField(LindiContractTemplateFieldVO contractTemplateFieldVO);

    /**
     * 根据ID删除合同模板字段
     *
     * @param contractTemplateFieldId 合同模板字段ID
     */
    void deleteContractTemplateFieldByContractTemplateFieldId(Long contractTemplateFieldId);

    /**
     * 根据ID更新合同模板字段
     *
     * @param contractTemplateFieldVO 合同模板字段VO
     */
    void updateContractTemplateFieldByContractTemplateFieldId(LindiContractTemplateFieldVO contractTemplateFieldVO);

    /**
     * 分页查询合同模板字段列表
     *
     * @param queryVO 查询条件
     * @return 分页结果
     */
    PageResp<LindiContractTemplateFieldVO> getPageContractTemplateFieldList(LindiContractTemplateFieldQueryVO queryVO);

    /**
     * 根据ID查询合同模板字段
     *
     * @param contractTemplateFieldId 合同模板字段ID
     * @return 合同模板字段VO
     */
    LindiContractTemplateFieldVO getContractTemplateFieldByContractTemplateFieldId(Long contractTemplateFieldId);
}
